/*
 * Copyright (c) 2025 Huawei Device Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

import 'dart:convert';
import 'package:flutter/services.dart';

import '../hadss_knock_share.dart';

class KnockShare {
  static MethodChannel methodChannel = const MethodChannel('hadss_knock_share');

  // 检查是否可以使用 KnockShare 功能
  Future<bool?> canUseKnockShare() {
    return methodChannel.invokeMethod<bool>('canUseKnockShare');
  }

  // 添加 KnockShare 监听器
  onKnockShare() {
    methodChannel.invokeMethod('addKnockShareListener');
  }

  // 移除 KnockShare 监听器
  offKnockShare() {
    methodChannel.invokeMethod('removeKnockShareListener');
  }

  // 设置 KnockShare 数据
  setKnockShareData(SharedData data, {bool? isAutoClean}) {
    isAutoClean = isAutoClean ?? false;
    var convert = const JsonEncoder().convert(data.getRecords());
    methodChannel.invokeMethod('setKnockShareData', <String, dynamic>{
      'data': convert,
      'isAutoClean': isAutoClean,
    });
  }
}
